6a8e53c3c67bae8d741a897fe6868447e61d34d2,idea/src/org/jetbrains/jet/plugin/references/JetSimpleNameReference.java,JetSimpleNameReference,checkReceiverResolution,#ReceiverDescriptor#CallableDescriptor#,197
Before Change
ReceiverDescriptor receiverParameter = receiverArgument.getReceiverParameter();
if (expectedReceiver.exists() && receiverParameter.exists()) {
constraintSystem.addSubtypingConstraint(expectedReceiver.getType(), receiverParameter.getType());
}
else if (expectedReceiver.exists() || receiverParameter.exists()) {
// Only one of receivers exist
After Change
@NotNull ReceiverDescriptor expectedReceiver,
@NotNull CallableDescriptor receiverArgument
) {
ConstraintSystem constraintSystem = new ConstraintSystemImpl(ConstraintResolutionListener.DO_NOTHING);
for (TypeParameterDescriptor typeParameterDescriptor : receiverArgument.getTypeParameters()) {
constraintSystem.registerTypeVariable(typeParameterDescriptor, Variance.INVARIANT);
}
ReceiverDescriptor receiverParameter = receiverArgument.getReceiverParameter();
if (expectedReceiver.exists() && receiverParameter.exists()) {
constraintSystem.addSubtypingConstraint(RECEIVER.assertSubtyping(expectedReceiver.getType(), receiverParameter.getType()));
}
else if (expectedReceiver.exists() || receiverParameter.exists()) {
// Only one of receivers exist